From c7fb02011f6920126448236a5d56c21e9a759331 Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Wed, 6 Jun 2007 09:13:50 -0600 Subject: [PATCH] [IA64] Fix HVM boot failure HVM sometimes fails to boot with the message "Guest nested fault vector=0x5400!". The cause of this issue is that cr.ifs never be initialized in very first context switching. To optimize hypercall on HVM, cr.ifs is only set with the predicate pNonSys(pr5)=1. Signed-off-by: Kouya Shimura --- xen/arch/ia64/vmx/vmx_init.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xen/arch/ia64/vmx/vmx_init.c b/xen/arch/ia64/vmx/vmx_init.c index e7562ce369..1364e5bc3c 100644 --- a/xen/arch/ia64/vmx/vmx_init.c +++ b/xen/arch/ia64/vmx/vmx_init.c @@ -51,6 +51,7 @@ #include #include #include +#include "entry.h" /* Global flag to identify whether Intel vmx feature is on */ u32 vmx_enabled = 0; @@ -296,6 +297,7 @@ vmx_final_setup_guest(struct vcpu *v) { vpd_t *vpd; int rc; + struct switch_stack *sw; vpd = alloc_vpd(); ASSERT(vpd); @@ -331,6 +333,10 @@ vmx_final_setup_guest(struct vcpu *v) /* Set up guest 's indicator for VTi domain*/ set_bit(ARCH_VMX_DOMAIN, &v->arch.arch_vmx.flags); + /* Initialize pNonSys=1 for the first context switching */ + sw = (struct switch_stack *)vcpu_regs(v) - 1; + sw->pr = (1UL << PRED_NON_SYSCALL); + return 0; } -- 2.30.2